package com.shuzixiangcun.service.front;

import com.shuzixiangcun.dao.OrdersDao;
import com.shuzixiangcun.entity.Orders;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.time.Instant;
import java.time.format.DateTimeFormatter;

import java.util.Date;
import java.util.List;
import java.util.concurrent.ThreadLocalRandom;

/**
 * 订单表(Orders)表服务实现类
 *
 * @author makejava
 * @since 2024-06-24 08:26:16
 */
@Service
public class OrdersFServiceImpl {
    @Resource
    private OrdersDao ordersDao;

    /**
     * 通过ID查询单条数据
     *
     * @param orderId 主键
     * @return 实例对象
     */

    public Orders queryById(Integer orderId) {
        return this.ordersDao.queryById(orderId);
    }

    /**
     * 分页查询
     *
     * @param orders      筛选条件
     * @param pageRequest 分页对象
     * @return 查询结果
     */

    /**
     * 新增数据
     *
     * @param orders 实例对象
     * @return 实例对象
     */

    public int insert(Orders orders) {

        return this.ordersDao.insert(orders);
    }

    /**
     * 修改数据
     *
     * @param orders 实例对象
     * @return 实例对象
     */

    public Orders update(Orders orders) {
        this.ordersDao.update(orders);
        return this.queryById(orders.getOrderId());
    }

    /**
     * 通过主键删除数据
     *
     * @param orderId 主键
     * @return 是否成功
     */

    public boolean deleteById(Integer orderId) {
        return this.ordersDao.deleteById(orderId) > 0;
    }


    public List<Orders> showListByUserId(Integer userId) {
        return this.ordersDao.showListByUserId(userId);
    }

    public  String generateOrderNumber() {
        // 获取当前时间戳
        String timestamp = String.valueOf(System.currentTimeMillis());

        // 生成一个随机数，范围可以根据需要调整
        int randomNumber = ThreadLocalRandom.current().nextInt(1000, 10000); // 生成1000到9999之间的随机数

        // 组合时间戳和随机数得到订单号
        return timestamp + randomNumber;
    }


}
